package binary_tree

import "fmt"

type TreeNode struct {
	Value string
	Left  *TreeNode
	Right *TreeNode
}

func PreTraversal(root *TreeNode) {
	if root == nil {
		return
	}
	fmt.Printf("%s ", root.Value)
	PreTraversal(root.Left)
	PreTraversal(root.Right)
}

func InTraversal(root *TreeNode) {
	if root == nil {
		return
	}
	InTraversal(root.Left)
	fmt.Printf("%s ", root.Value)
	InTraversal(root.Right)
}

func PostTraversal(root *TreeNode) {
	if root == nil {
		return
	}
	PostTraversal(root.Left)
	PostTraversal(root.Right)
	fmt.Printf("%s ", root.Value)
}


// 二叉树递归调用
func F(root *TreeNode) {
	if root == nil {
		return
	}
	// ①
	F(root.Left)
	// ②
	F(root.Right)
	// ③
	// 结束 return
}


